package com.sqlcheck.service;

import com.sqlcheck.dto.request.UnifiedAnalysisRequest;
import com.sqlcheck.dto.response.UnifiedAnalysisResponse;
import com.sqlcheck.dto.response.DatabaseTypeResponse;
import com.sqlcheck.dto.response.SqlExampleResponse;
import com.sqlcheck.dto.response.FormatSqlResponse;

import java.util.List;

/**
 * 统一分析服务接口
 */
public interface UnifiedAnalysisService {

    /**
     * 执行分层分析（规则分析 + 可选AI增强）
     * 这是唯一的分析入口方法
     */
    UnifiedAnalysisResponse performLayeredAnalysis(UnifiedAnalysisRequest request);

    /**
     * 获取支持的数据库类型
     */
    List<DatabaseTypeResponse> getSupportedDatabases();

    /**
     * 获取SQL示例
     */
    List<SqlExampleResponse> getSqlExamples(String category, String sourceDbType);

    /**
     * 格式化SQL
     */
    FormatSqlResponse formatSql(String sqlContent, String dbType);

    /**
     * 验证SQL语法
     */
    boolean validateSqlSyntax(String sqlContent, String dbType);

}